IPv6 stands for “Internet Protocol Version 6”, also referred to as the next generation of Internet Protocol, which is a new IP protocol developed by the Internet Engineering Task Force (IETF) to take the place of current IPv4. IPv6 is proposed for addressing the problems and deficiencies with IPv4 and has brought out improvements in various aspects such as routing, autoconfiguration and the like. IPv6 will completely take the dominant place of IPv4 in the Internet after a relatively long period of their coexistence. IPv6 has the following characters in comparison with IPv4: a simplified head; flexible extension; a hierarchical address structure; a plug-and-play networking approach; authentication and encryption at the network layer; fulfillment of Quality of Service; and a better support for mobile communications.
IPv6 extends the length of a current IP address by a factor of 4, i.e., the length of 32 bits for current IPv4 is extended to 128 bits, so as to support a large number of network nodes. Thus, the total number of the IPv6 addresses is about 3.4×1038. If it were averaged over the surface of the earth, there would be 6.5×1023 addresses per square meter. IPv6 supports more levels of address hierarchy in that its address space is designed to be divided as per different address prefixes, and the hierarchical address structure is used to facilitate rapid forwarding of data packages by a router in a backbone network.
A global IPv6 address is composed of a global routing prefix, a subnet identifier and an interface identifier. As defined in Section 2.5.4 of RFC3513 and shown in FIG. 1, a global routing prefix is a value indicative of a typical hierarchical structure assigned to a site (a group of subnets or links), a subnet ID identifies a subnet within a site, and an interface ID identifies an interface on a link.
The Internet Assigned Number Authority (IANA) governs a consolidated assignment of global routing prefixes. An organization provided with a global routing prefix is responsible for the assignment of subnet IDs, in a similar way to the assignment of subnet masks in an IPv4 context, for which there is no related standard and which, at present, is usually achieved through manual management and configurations. The assignment of interface IDs can be realized through state and stateless autoconfiguration, where the state autoconfiguration can change the IP addresses of all hosts within the network without manual intervention and hence has been applied more widely.
RFC2462 describes a stateless autoconfiguration procedure for the assignment of an IP address to an IPv6 terminal device. The stateless autoconfiguration requires a support for multicast by a local link and the abilities of a network interface to transmit and receive a multicast message. This procedure requires a host within the network to perform the following steps.
First, the host for autoconfiguration determines a local link address of its own.
Then, the uniqueness of the local link address of the host is checked within the broadcast domain of the subnet.
Finally, the host determines information required for the configuration, for example, including an IP address of a node and/or other configuration information.
Specifically, during the stateless autoconfiguration, the host first generates a local link address through appending the MAC address of its network card after the prefix, 1111111010, of the local link address, and particularly in the case of a 48-bit MAC address of the network card used by the host, the IPv6 driver of the network card can convert the 48-bit MAC address into a 64-bit MAC address according to a certain formula. Then, the host transmits to this address a multicast message of Neighbor Discovery Request (NDR) for the check of the uniqueness of the address. If there is no response to the request, it indicates that the local link address configured by the host itself is of uniqueness; otherwise it indicates that there is an address on the link identical to the local link address configured by the host itself. In the latter case, the host can use an interface ID generated randomly to compose a new local link address, and then with this address being as a source address, multicasts to all the routers on the local link a Router Solicitation (RS) to request configuration information, and the routers respond with a Router Advertisement (RA) containing a global address prefix and other relevant configuration information. The host configures a global address automatically by adding its own interface ID to the global address prefix obtained from the routers, and then gets the ability to communicate with another host within the Internet.
Stateless autoconfiguration in the prior art provides an IP address configuration method that is well suitable for an IP network interconnected through routers. However, the uniqueness check of a local link address in the stateless autoconfiguration requires a support for multicast by the local link and a broadcast feature of the network forming the local link. In the context of a network where routers are connected with terminal devices through a Non Broadcast Multi Access (NBMA) layer-2 network, including, for example, a frame delay network, an asynchronous transfer mode network and the like, however, the terminal devices can not conduct the address uniqueness check by means of the broadcast characteristics of the link during address configuration, and hence the stateless autoconfiguration of addresses is impossible.
Moreover, in the case that a layer-2 device at a convergence location implements Neighbor Discovery and communication with a host within a subnet through an agent, the layer-2 device has to implement broadcast even if there is no link-layer address corresponding to the requested IP address. At this point, the broadcast would be impossible when a router and a terminal device are connected through an NBMA layer-2 device, and a broadcast message thus generated may affect the network performance to some extent.